1: | eq(0,0) | → true | |
2: | eq(0,s(X)) | → false | |
3: | eq(s(X),0) | → false | |
4: | eq(s(X),s(Y)) | → eq(X,Y) | |
5: | rm(N,nil) | → nil | |
6: | rm(N,add(M,X)) | → ifrm(eq(N,M),N,add(M,X)) | |
7: | ifrm(true,N,add(M,X)) | → rm(N,X) | |
8: | ifrm(false,N,add(M,X)) | → add(M,rm(N,X)) | |
9: | purge(nil) | → nil | |
10: | purge(add(N,X)) | → add(N,purge(rm(N,X))) | |
11: | EQ(s(X),s(Y)) | → EQ(X,Y) | |
12: | RM(N,add(M,X)) | → IFRM(eq(N,M),N,add(M,X)) | |
13: | RM(N,add(M,X)) | → EQ(N,M) | |
14: | IFRM(true,N,add(M,X)) | → RM(N,X) | |
15: | IFRM(false,N,add(M,X)) | → RM(N,X) | |
16: | PURGE(add(N,X)) | → PURGE(rm(N,X)) | |
17: | PURGE(add(N,X)) | → RM(N,X) | |